The number of computers and peripherals has mushroomed in recent years. This has created a need for improved methods of interconnecting these devices. A wide variety of networking paradigms have been developed to enable different kinds of computers and peripheral components to communicate with each other.
There exists a bottleneck in the speed with which data can be exchanged along such networks. This is not surprising because increases in network architecture speeds have not kept pace with faster computer processing speeds. The processing power of computer chips has historically doubled about every 18 months, creating increasingly powerful machines and "bandwidth hungry" applications. It has been estimated that one megabit per second of input/output is generally required per "MIPS" (millions of instructions per second) of processing power. With CPUs now easily exceeding 200 MIPS, it is difficult for networks to keep up with these faster speeds.
Area-wide networks and channels are two approaches that have been developed for computer network architectures. Traditional networks (e.g., LAN's and WAN's) offer a great deal of flexibility and relatively large distance capabilities. Channels, such as the Enterprise System Connection (ESCON) and the Small Computer System Interface (SCSI), have been developed for high performance and high reliability. Channels typically use dedicated short-distance connections between computers or between computers and peripherals.
Features of both channels and networks have been incorporated into a new network standard known as "Fibre Channel". Fibre Channel systems combine the speed and reliability of channels with the flexibility and connectivity of networks. Fibre Channel products currently can run at very high data rates, such as 266 Mbps or 1062 Mbps. These speeds are sufficient to handle quite demanding applications such as uncompressed, full motion, high-quality video.
There are generally three ways to deploy Fibre Channel: simple point-to-point connections; arbitrated loops; and switched fabrics. The simplest topology is the point-to-point configuration, which simply connects any two Fibre Channel systems directly. Arbitrated loops are Fibre Channel ring connections that provide shared access to bandwidth via arbitration. Switched Fibre Channel networks, called "fabrics", yield the highest performance by leveraging the benefits of cross-point switching.
The Fibre Channel fabric works something like a traditional phone system. The fabric can connect varied devices such as work stations, personal computers (PCs), servers, routers, mainframes, and storage devices that have Fibre Channel interface ports. Each such device can have an origination port that "calls" the fabric by entering the address of a destination port in a header of a frame. The Fibre Channel specification defines the structure of this frame. (This frame structure raises data transfer issues that will be discussed below and addressed by the present invention). The Fibre Channel fabric does all the work of setting up the desired connection, hence the frame originator does not need to be concerned with complex routing algorithms. There are no complicated permanent virtual circuits (PVCs) to set up. Fibre Channel fabrics can handle more than 16 million addresses and thus, are capable of accommodating very large networks. The fabric can be enlarged by simply adding ports. The aggregate data rate of a fully configured Fibre Channel network can be in the tera-bit-per-second range.
Each of the three basic types of Fibre Channel connections are shown in FIG. 1, which shows a number of ways of using Fibre Channel technology. In particular, point-to-point connections 100 are shown connecting mainframes to each other. A Fibre Channel arbitrated loop 102 is shown connecting disk storage units. A Fibre Channel switch fabric 104 connects work stations 106, mainframes 108, servers 110, disk drives 112, and local area networks (LANs) 114. Such LANs include, for example, Ethernet, Token Ring and fibre distributed data interface (FDDI) networks.
An ANSI specification (X3.230-1994) defines the Fibre Channel network. This specification distributes Fibre Channel functions among five layers. As shown in FIG. 2, the five functional layers of the Fibre Channel are: FC-0--the physical media layer; FC-1--the coding and encoding layer; FC-2--the actual transport mechanism, including the framing protocol and flow control between nodes; FC-3--the common services layer; and FC-4--the upper layer protocol.
While the Fibre Channel operates at a relatively high speed, it would be desirable to increase speeds further to meet the needs of faster processors. One way to do this would be to eliminate, or reduce, delays that occur at interface points. One such delay occurs during the transfer of a frame from the FC-1 layer to the FC-2 layer. At this interface, devices linked by a Fibre Channel data link receive Fibre Channel frames serially. A protocol engine (PENG) receives each frame and processes them at the next layer, the FC-2 layer shown in FIG. 2. The functions of the protocol engine include validating each frame; queuing up direct memory access (DMA) operations to transfer each frame to the host; and building transmit frames.
Fibre Channel frames come in several types. Each frame includes a header and a payload portion. One part of the frame header is a routing control and type (R.sub.-- CTL/TYPE) field that provides an indication of frame type and routing information. (The R.sub.-- CTL/TYPE field may be implemented as separate routing and type fields). Fibre Channel networks can recognize and handle TCP/IP frames compatible with the Internet. TCP/IP frames include link control frames and data frames, each identified by the R.sub.-- CTL/TYPE field within its respective frame header. TCP/IP frames generally need to be processed differently from other types of Fibre Channel frames. In particular, TCP/IP frames may require a response from a host processor within a certain amount of time, or an error condition occurs.
Conventional approaches to handling frames generally rely on the involvement of a host CPU on a frame-by-frame basis. For example, validation of received frames and setting up DMA operations and acknowledgments typically involve the host CPU, which limits frame transmission and reception rates and prevents the host CPU from performing other tasks. Further, a host CPU with software protocol "stacks" may have difficulty keeping up with fast networks such as Fibre Channel.
In typical Fibre Channel host adapters, frame routing functions are performed by an on-board microprocessor. However, in low-cost implementations, the microprocessor-based products will be replaced with products that use dedicated hardware or sequencer-based solutions. In these solutions, the on-board processors do not have enough computing power to process the R.sub.-- CTL/TYPE fields within frames, so frames must be passed to host memory for processing. Time spent by the host in sorting out frame types may cause undue delay in responding to incoming requests.
In view of the foregoing, objects of the invention include: increasing data transfer processing speeds in high speed networks such as the Fibre Channel network; providing a technique that can speed up a protocol engine's processing of data frames; minimizing data traffic between a protocol engine and a host CPU and system memory; performing Fibre Channel frame routing in hardware; and improving host software efficiency by using hardware to perform routing on specific types of frames, and more particularly to perform an initial mapping of frames into specific host-based rings based on the R.sub.-- CTL/TYPE field.